You should probably actually use this patch instead if you want level-specific ExGFX, as this patch does not compress graphics and will hence take up significantly more space in your hack for each GFX file inserted.
However, if that's not a concern, you can just use UberASM to set/clear the freeram address as necessary.
Added SA-1 compatibility and an assert (a forced warning if a certain condition is false) if !FreespaceX is doesn't end with $9FF8 and have added a few stuff to the instructon.
Other then that, it was really needed that the Yoshi fix was. Now, the only major downside is that the graphics occupy almost 3/4 of a single bank (0x5D00 bytes to be precise).
Also note that you need to search for freespace manually (i.e. use Slogger, though it assumes that the ROM is LoROM and not an SA-1 ROM) and you need to manually convert !Freeram to an SA-1 address (i.e. add $6000 to the address if the address is three to four digits long).