Ab.so.lute.ly it is the filesystem. Stuffing 22000 files into *any* filesystem directory is pushing things, but using an ancient one like FAT is just plain mean.
Top that off with expecting a port of a filesystem to linux to keep up with a native windows format, well…
Anyway, you should do some filesystem research. Simply put, find some other FS, and deal with the compatibility issue some other way(i.e. a removable drive or a central server). A central server is best since you have it run an FS native and optimized to the OS running, and it serves up to whatever OS you want.
ReiserFS is a good, basic filesystem for linux, it's the default for SUSE. It has better small file performance over ext3. I tend to use it for workstations. The only problem I've found with it is a weird problem with some vendors using some versions of flexlm license manager. There's something odd that can happen where the license file doesn't get read. Something about file processes happening in userspace. Next version of Reiser is supposed to deal with it. It's literally happened once to me. Other than that, no troubles.
ext3 is the journaling version of ext2 - literally the same as ext2 with a journal tacked on. Good, solid systems, especially if you're concerned about some older systems playing nicely with it. Otherwise, I'd move on.
If you're getting into film or especially servers, I'd go XFS. It doesn't do as well for smaller files, but it positively sings for big images. Great, solid system for the powerhouse machines.
Lots of info out on the net - lots of opinions too.
Cheers,
J.C.