I could not find an easily navigable version of ECMA-335 online, but ECMA-334 paragraph 27.2 says:
An unmanaged-type is any type that isn’t a reference-type, a type-parameter, or a generic struct-type and contains no fields whose type is not an unmanaged-type. In other words, an unmanaged-type is one of the following:
sbyte
,byte
,short
,ushort
,int
,uint
,long
,ulong
,char
,float
,double
,decimal
, orbool
.Any enum-type.
Any pointer-type.
Any non-generic user-defined struct-type that contains fields of unmanaged-types only.
[Note: Constructed types and type-parameters are never unmanaged-types. end note]
The packing mode of a structure does not seem to be relevant to this distinction.