I would like to make a suggestion for the way XP gains are handled on the combat field. When playing with my brother we soon discovered that skill checks result in XP gains. Nothing wrong with that, but what ended up happening is we would deliberately do things to invoke skill checks for the sole purpose of getting more XPs (like always dodging or breaking moves).
It does makes sense that practicing in this way would contribute to a jock's skills, and of course there's a chance you will fail a skill check and damage your titan...but those two things aren't enough to offset the "cheapness" of this tactic, imo.
So, my suggestion is this: Track the number of times each type of skill check is made and apply a square root to the tally at the end of combat. What I mean is to create an array for each possible skill check and keep the tallies in it, so start out with something like:
Each time a skill check is made its corresponding field is incremented. So if during a match a jock dodged 3 times, fired his cannon-type weapons 5 times, and made a repair then the table would look like:
Then use the square root of each of these fields to determine XP gains for Piloting, Combat and Other. For example:
Combat XP Gain = ( sqrt(skill_check[CLOSE_COMBAT]) + sqrt(skill_check[CANNONS]) + sqrt(...) ) * some_constant
In this way, jocks will receive diminishing returns for performing the same skill check again and again. This reflects the idea that you can only learn so much in one go, and it's difficult to learn everything about piloting from dodging alone.