I'm guessing the one I viewed had garbage bits in it that the flag->string function didn't recognize, so it generated "none". Your copy likely had it set to zero, which I'm guessing the code checks before attempting to do the flag->string.
Perhaps create a set of VALID_*_MASK for every flag bank, where * is the name of the bank, such as VALID_OBJEXTRA_MASK. The define would have all valid bit positions associated WITH that set of flags.
A simple check like so…
if(obj->extra & VALID_OBJEXTRA_MASK)
would filter out possible garbage bits from corrupting system checks.