There might be something weird about my Olympus camera generating strange files. They have a "PrintIM" tag, which is a proprietary standard that cannot be decoded as far as I know. This tag may or may not be causing the problems.
from what I can tell, the IFD is correctly parsed, but IFD is not. According to the IFD, the next IFD offset is 1174 (absolute position 1186). However, hachoir is parsing IFD beginning at 578. The resulting data makes no sense, for example, this camera has no GPS capability, but hachoir is telling me that it has GPS tags.
I will attach an example file. I get the same results with all files from this Camera, so it's not just one corrupt file.