The traverse_dir() call uses lstat when it should be using stat() for the target instead of the link itself.
If you change it to stat, it will handle 1 symlink to a real directory. The traverse_dir should also account for symlinks to symlinks and so on.
Additionally, there are some valid maps that are inserted and then deleted. I think this is due to using the hashtable to check for maps. Somewhere along the way, it will insert the map (insert_shot) and then remove it multiple times (drop shot).
Because of assumed case insensitivity in Windows, I have to use several symlinks so mod names are name and NAME. In addition, I have multiple versions which are more symlinks. This causes problems for xqf because not all screenshots are kept properly.