Even if the enemy MP is 0, you can still drain MP from enemies.
If we know the addresses for the damage formulas, wouldn't this be as easy as adding an if statement to check and take the minimum of MP damage and curMP (assuming the next line is HP healed = minimum)?
yes, that is an easy hack.
Would it involve fixing every single MP drain formula separately or is there one code fix for MP damage that would fix each formula (like the drain HP % to be capped at % of 999 hack)?
each separately... I think there are only two MP drain formulas anyway; Dark Sword and Aspel/other one.
If you guys come up with the ASM hack for this, please publish it. I'd love to use this in my patch.