Well, generally, all thumbnails in a database will be of the same format (unless you would change the setting at some point and then add new thumbnails without updating the old).
I found some additional but very dated info about thumbnail formats - this is from before JPG was added as an option, but it may still solve a riddle or two for the uncompressed and LZH-compressed formats:
> o thumbnail_size is the length, in bytes, of the thumbnail data.
>
> o thumbail_width and thumbnail_height are the dimensions.
>
> o thumbnail_type is:
> 3 - Grayscale (32 levels)
> 4 - 8-bit color (236 indexed colors; values 0-9 and 246-255
> are unused)
> 5 - 15-bit color
> 6 - 24-bit color (BGR order)
>
> o thumbnail types of 259-262 are the LZH-compressed versions of
> these types
>
> o 8-bit thumbnails all use the same color table, which is not
> stored in the database. You can obtain the palette by reducing
> an image to the "ThumbsPlus palette." The color table of the
> resulting file is the one used by T+ for the thumbnails.
>
> o 15-bit thumbnails are stored as 5 bits each of blue, green and
> red. The high-order bit is not used: 0rrrrrgggggbbbbb in binary.
> In C/C++, you can convert to 24-bit RGB using:
> r = ((pixel & 0x7c00) >> 7) | ((pixel & 0x7c00)) >> 13);
> g = ((pixel & 0x03e0) >> 2) | ((pixel & 0x03e0)) >> 8);
> b = ((pixel & 0x001f) << 3) | ((pixel & 0x001f)) >> 3);
>
> o Grayscale thumbnails (which are used for grayscale images
> regardless of the thumbnail type of the database in order to
> reduce thumbnail size) are 32 gray levels, evenly spaced from
> (0,0,0) through (255,255,255).