I wonder if the advance version still has the same bug...
if you only have mutable abilities and get muted - the game just hangs. Because it can't find a valid slot to put the pointer to.
Does anyone know what the innate-granting function looks like?
There is no such thing. Innates are hardcoded in Job table. There is no granting :)
Actually there is - at least for the SNES version, I expect the GBA version to be similar.
When changing jobs or abilities the entire character is recalculated, including which innates you have active.
It just so happens there is a check if you are a mime or freelancer, only then does it even check for learned innates.
You could remove this check and get the innates on all jobs.
In the end, everything regarding innates is hardcoded, so if you want to change anything about it you have to get dirty with asm.
Also, I'd be careful with making
every passive innate; not so much because getting +71.6% HP might be OP but because always-on cover (why did my mage just jump in front of the tank to take a physical hit?) or counter (fire sword vs fire absorbing enemy) or heaven forbid berserk can be very detrimental.
I also wonder if 2) the passives can be granted as soon as they are gained, rather than grinding out extra abilities you don't want.
All abilities (not only passives) are gained (learned) with ABP. I don't understand how you gain without grinding ...
maybe some kind of shop where you spend ABP instead of gold?