If yo1fog's structure is acceptable, I might be able to help with the MAME game name change concern.
I could write a tool that takes the mame names in the controls xml, and compares them to the names in the mame list xml. Then I could perform a diff with a nice, clear UI representation of changes. It would allow you to manually check which names are unique in controls.xml over the MAME list (perhaps because MAME games were removed or renamed between versions). That would at least give us a fighting chance of keeping uptodate, though it would not be fully automated.
We could also update yo1fog's structure to include rom checksums so we can match records up again when names change.
Further, we could turn the 'label', 'negLabel', etc., properties into full objects. Then we could include the property 'source' for each. The value of which could be 'user_submitted', 'control_panel', etc.
I don't like moving away from xml though. Json's only advantage is for web downloading. We lose schemas, comments, and the nuances of attributes. But the structure review could start with what is suggested in the json sample.
This project is crazy important. PM me if I can help. I do all sorts of stuff like this:
http://datinate.com/