Thanks for the offer. At the moment, I don't even know what to ask for. It's a tedious process: We must take a valid iTunesDB (from iTunes), and step by step transform this to the one created by ml_ipod. After each step attach the iPod to iTunes again, and see if it recognizes it. Then, at some point, where iTunes refuses to accept the iPod, we found the problem. But that takes a lot of time, hex editing, and a lot of turns with iTunes.
For playing around, it should(?) be enough to rename the ipod_control folder. Then iTunes won't touch it. (Well, maybe that's not true if you really "restore" in iTunes, I guess that could wipe the whole iPod HD). Creating a simple backup to another HD of the ipod_control folder would be safest, if you have 45GB free somewhere...
Then you could create a new iTunesDB with iTunes, transfer some songs. Save the iTunesDB. Then run ml_ipod, and eject. Now the database is rewriten, probably iTunes does not accept the iPod any longer. Then you have to compare the two iTunesDB versions. Not so easy. http://ipodlinux.org/ITunesDB
is the reference page.
Maybe by just null'ing some areas of the original iTunesDB, you could get the same behaviour that iTunes rejects the iPod? If you can narrow it down to some bytes, we could try to provide the correct information to satisfy iTunes... maybe. You see, reverse engineering isn't much fun at all, and Apple really doesn't make it easy for us.