The size of the allocation for this struct always includes both the size of the struct and also the size required to hold the structure described by the ScriptStruct. This avoids two pointer referencing (cache misses). Look at Create() to understand more.