I have patched the first 3 bytes of the sector from 'E9 00 00' to 'E9 3B 00' and 7zip is able to open the image correctly. So it seems FAT12 works correctly and it is just the handling of 0 code offsets when the format doesn't place a boot strap in the first sector.
I have attached a copy of an image. It has been created with Micrium filesystem, so notably it doesn't contain any bootstrap code. I have looked at the code and I think there is a bug in the treatment of codeOffset. For a codeOffset of 0, the code adds 3. int codeOffset = 0; switch (p[0]) { case 0xE9: codeOffset = 3 + (Int16)Get16(p + 1); break; case 0xEB: if (p[2] != 0x90) return false; codeOffset = 2 + (signed char)p[1]; break; default: return false; } However the following checks for an code offset...
Consider adding support for FAT12 images