As far as I know, mp3 frames have a "volume" field, which is what mp3gain changes to losslessly change the volume of the entire track. Could you not take advantage of that too?
The problem is the huge difference in dynamics between "old" and "new" recordings (that is, not just their maximum level) which makes really hard if not impossible to have more tracks sounding near the same level.