Is there any Linux tool that allows defragmenting a FAT32 filesystem not on a best effort basis, but so that all files are guaranteed to be stored contiguously with no exceptions? Possibly writing the filesystem image in one go like mkisofs?

Background: I store songs on an SD card. Apparently, my car radio can't handle fragmented files at all and will stop playing after the first extent (typically a few seconds into the song). I verified this by running the filefrag util - only the files that occupy exactly one extent play completely.