All 3 GBA games use the same EXP formula, actually, with just one difference: this thing called the Mode Coefficient.
The Mode Coefficient is a value in the EXP formula that, when enabled, causes higher-leveled units to gain more exp – specifically, when your level (adjusted for class tier and relative power) is equal to or higher than the enemy’s level (adjusted for their tier and relative power) and the Mode Coefficient is enabled, your level is treated as half what it is for EXP gain. This supports snowballing higher-leveled units and can create some truly stupid outcomes when promoted units are involved (since being promoted is treated as +20 levels, so halving a promoted unit’s level is a big change.). I believe I’ve seen an example that goes something like “level 7 promoted unit kills level 8 promoted unit = 30 EXP, level 8 promoted unit kills level 8 promoted unit = 80 EXP”.
The Mode Coefficient does not exist in FE6.
In FE7, the Mode Coefficient is enabled for the entirety of Normal Mode, and disabled on Hard Mode. This is the cause of the well-known EXP decrease on FE7’s Hard Modes, and where the Mode Coefficient gets its name.
In FE8, the Mode Coefficient is enabled regardless of difficulty up until the route split happens, after which it’s disabled. Some people who don’t know the specifics also refer to it as the “Seth bonus”, since it’s most noticeable from Seth leveling faster in the early game than promoted units should. (Like he needed the help.) So, in other words, FE8 uses the FE7 Normal Mode EXP function for the earlygame, and switches to the FE7 Hard Mode EXP function at the route split.
There are patches to disable the Mode Coefficient entirely in both games. I generally recommend that everyone does so in their hacks, since units snowballing out of control is usually not a desirable outcome for game balance.
As for hard mode bonuses, all three games also use a similar function for that – enemies get about 5 extra levels worth of stats on Hard, and that number can be easily changed per-chapter. FE6 just has higher enemy stats in general (higher generic class growths), and has doubled hard mode bonuses for some enemies in the first… 5 chapters, I think it was? And (in FE8, at least) promoted enemies get an extra 10 levels on Hard for being promoted. Easy and Normal calculate promoted enemy stats with +9 levels, Hard does it with +19. These values can also be changed. If you want to increase enemy stats, you’d probably look to increasing generic class growths – they’re what the game uses for automatic leveling to calculate enemy stats.