Hello Martin,
USB stack is based on the MSD specification; however, several USB sticks manufacturers don’t meet the specification (timing, endpoint handling, supported commands, access speed,etc). Thus, when a USB stick is out of specification, the embedded file-system libraries are unable to support all the variations such as non-embedded solution does (like Mac-OS or MS Windows). So, it may be required adding a considerable amount of code in order to support all the variations. USB Stack developers are continuously improving the MSD Host applications, testing more USB sticks for every release and applying workarounds if necessary. However, a universal workaround for this is very difficult to obtain because the huge variety of non-compliant USB sticks on the market.
Regarding the supported file system, it currently supports FAT16 and FAT32.
Hope this will be useful for you.
Best regards!
/Carlos