I have everything you suggested for the XML already in my Access database. Fully populated. It works like a charm and is lightening fast. I do queries to the database the entire time the use is in ArcadeFX now. Almost every action you do in AFX now is pulling data from the Access database. It is head and shoulders faster than accessing any large file like listinfo or catver.ini or any other mame generated file. I do not store any images in the database at all. I see no reason to do this. All image are taken from there respective MAME folder based on data returned form the database.
In AW database access on the fly from a db is faster that I could have imagined. Mush faster than accessign any of the MAME generated files for sure.
Here is what my database contains and is fully prepopulated when the user downloads it with the AFX files.
gamename, gamedescription, gameyear, gamemanufacturer, gamecloneof, gameromof, gamecategory, gameversion, videoscreen, videoorientation, videox, videoy, videocolors, videofreq, soundchannels, inputplayers, inputcontrol, inputbuttons, inputcoins, driverstatus, drivercolor, driversound, drivercolordeep, available, favorite, favorite2, favorite3, favorite4, favorite5, counter
The last seven are data that is written from AFX for each user.
Any database I have ever worked with is faster than any txt file could every be. This includes PHP/MSLQ, Oracle, Sql Server, Access. I guess it all depends on how you code the front end.
This is only limitation in AW that I have had to work around and that is a 30k limit on variables. This is a pretty easy thing to work around.