Jump through more hoops to try and get defaultFloat (in field initializers) to actually be a float. Spidermonkey is super aggressive about converting things to int32 and polluting its type information. :/
Fix unmarshalling constructor for nested structs.