icon file format
----------------

offset	length	type	description
--------------------------------------------------------------------------
 0		4		uint32	version 0x00010000 (-> v1.0.0)


MODEL SECTION (for offset calculation, assumes 1 key shape, NKS=1)
--------------------------------------------------------------------------
 0		4		uint32	NKS = number of key shapes (1, 4, 6, 8)
 4		4		uint32	attributes (bit 8 -> texture compressed)
 8		4		float  	back face clipping value
12		4		uint32	NV = number of vertices

(the following are repeated NV times)
16		2x4xNKS	int16	co-ordinates of 1st vertex
24		2x4		int16	normal vector (12bits fractional part)
32		4		uint32	texture co-ordinates
36		4		uint32	vertex color


ANIMATION SECTION (for offset calculation, assumes 1 key frame, NKF=1)
--------------------------------------------------------------------------
 0		4		uint32	number of animations (1)
 4		4		uint32	animation length
 8		4		float	animation speed
12		4		uint32	offset in animation to play from
16		4		uint32	NS = number of shapes to use

(the following are repeated NS times)
20		4		uint32	shape number of shape key (1)
24		4		uint32	NKF = number of key frames
28		2x4xNKF	int16	key data


TEXTURE SECTION (uncompressed, bit8 of model attributes clear)
--------------------------------------------------------------------------
0		2x16384 rgb16	texture data, 128x128x16bit (A<<15|B<<10|G<<5|R)


TEXTURE SECTION (compressed, bit8 of model attributes set)
--------------------------------------------------------------------------
0		4		uint32	size of texture data
4		?		uint8[]	texture data, 128x128x16bit, RLE encoded

RLE encoded texture data which consists of compression sequences. One compression sequence starts with number n (int16), this byte may be followed by additional int16's, so this bytes form one compression sequence.
If n is positive (n >= 0), its followed by one int16 which has to be repeated n times during decompression. If n is negative (n < 0), then the following n*2 bytes should be copied.
This scheme is similar to PackBits encoding scheme known to Macintosh users.

Examples:

Compressed data-hex format      Decompressed data-hex format
0003 23A1                       23A1 23A1 23A1
FFFE 23A1 24A1                  23A1 24A1
