Works as intended, so, update accepted. One minor usage note that wasn't mentioned is that the address specified in the config file does not have to be freeRAM - you could instead put a specific address used by the game, then have that act as the index to what ExGFX to use during gameplay (e.g. different graphics depending on Mario's powerup state) - so long as it's range of possible values matches the number of Mario ExGFX you insert.
This must be the first patch where I use advanced Asar features i.e. nested defines, loops, defined addresses, etc.
When I moderated the patch, I forgot to replace the file so it doesn't support SA-1 (as noted here). This is a good thing as my update (which doubles as a remoderation) changes the way how the graphics are inserted.
Before, you had a macro which only allows you to set the ID but not where the graphics are located (you set freespace just like on a classical xkas patch, under the name !FreespaceID) and the filenames also were fixed to be mariogfxID (the new features could have existed back then when it was a xkas patch). Now the macro allows you to specify the bank (address is fixed) and the graphics can use any name now. You don't have to edit BankTable either which is where loops come into play (thia is a feature which requires Asar, btw).
Of course, SA-1 is also properly supported.
It doesn't affect the palette, though, but I planned to create Alternate Custom Mario Palettes sometime soon.
Do note that this isn't the only patch to use. Mario + Animated Tiles ExGFX is useful if you want the player graphics to be compressed (though it doesn't support SA-1 properly as the decompression buffer is too small and the current solution isn't flawless either) and Separate Luigi Graphics allows you to replace SP1 but is more complicated.