Quick update on Stats:
As far as I'm concerned those stat tables should start packing because I plan to give them the boot!

The plan (which should work, I did it for DkC and I know the rest are similar enough) is to dedicate 5 bytes per character to describe their stat growth: one for each attribute. The way I've found best to describe stat gain was to define growth in terms of blocks of 5 levels each. By that I mean that for DkC I've assigned him a value of 23 for Strength gain. That number corresponds to a set of basis vectors (see below) that can be referenced bitwise:
So each vector (row) corresponds to which level in a set of 5 should be set to +1.
#/Lv 0 1 2 3 4
1 1 0 0 0 0
2 0 1 0 0 0
4 0 0 1 0 0
8 0 0 0 1 0
16 0 0 0 0 1
For DkC 23 breaks down to 16 + 4 + 2 + 1 or as a set of stat increases as: 1,1,1,0,1 meaning that at Lv 20 he should gain Str - same for 21 & 22 - then skip 23 - increase again at 24 - then repeat. Comparing the results of that sequence vs what is tabulated (when similarly starting at Lv 10 and Str = 13) I come up with 9 instances between Lv 10 and 70 where his Str is off by 1 - which really translates to him having had gained a point of Str either one level early or one level late.
Only off by 1 for 9/60 levels corresponds to DkC being off on an average of 15/100 of a stat point in reference to the ROM table at any given level in the sequence. I'll TAKE IT!

Needless to say I'm pretty pleased with how this turned out. I did his other stats with similar results and given the earlier discussion about not being able to notice slight stat variations I'm confident with the present "Eureka!" As it stands the only problem are the few odd cases; like DkC's Will - starts at 3 - and drops to 1 where it remains. That, at this moment, I am not sure how best to handle. But at the very least I can always add more rows to the table to flag sign changes. Yang also springs to mind due to his high strength gain, which works out to adding an additional Str point every 4th level - on top of already increasing strength by 1 every level. But those exceptions are few and could be dealt with case-by-case, or again by adding rows. I am also considering storing another variable corresponding to any such exceptions.
I'll work this out over the next few days and write up the pseudo-code if needed; but I think most here are more familiar then I with that kind of splitting scheme - I didn't even think about such a clever consolidation of choices until looking at FF1 information. Also I'll finish working out the parameters for each character - though up front it is slow going as I have to do each stat for each character 1-by-1; but it's worth it! Please comment/question as you see fit - suggestions are very welcome - but for me:
