I tried to use iTunes to 'consolidate' my library into /path/[artist]/[album]/[title].mp3 but for whatever reason it would get some percentage complete and then die. I assume it has something to do with strange non-alphanumeric upper-ascii characters in filenames and iTunes was using files over a samba share.
Whatever the reason, I had to fix this myself. I have two scripts now. One parses the ID3 tags and stores them in a file, and one uses that data to organize songs into the aforementioned directory structure.
Scripts: findsongs.py and migratemusic.py