What you're really asking is for something that can parse bad data and return good data... which is asking a lot!
There's a program that I had used called
iEatBrainz which didn't just look at the xml, but actually looked at the "sound" of each of the MP3/AAC files to pluck all the relevant metadata out of an extensive database. And it worked pretty well - not infallible - but it did a decent job. It also ate CPU like crazy. I wouldn't be surprised if that's how it got its name...
But apparently it's broken under Leopard.
Another project, along the same lines, is in beta at Last.FM , called
Fingerprint which seeks to do much the same... but right now I think they're still building their database, and gathering information, rather than fixing tags. But someday...
It also eats up CPU cycles with great abandon.
But in both cases, you need to let the tool look at your actual music file in addition to the ID3 tags (however imperfect they may be) in order for it to figure out what should be what.