What is the point of hsBool? Its an Integer which stores a True/False... At least thats how it seems to be mainly used. Seems a waste to use a 4 byte number to store a 1 byte value(Ok its technically a 1 bit value but we don't have 1 bit numbers).
P.S Never assume a hsBool is written as a 4 Byte or a 1 Byte value as due to inconsistencies it can be stored in a PRP as either (Took me hours to find a bug in my loading code caused by Cyans inconsistencies).