I have found it

The fixed differences put me onto something... what if it is a date/time? As the Windows timer only has a limited resolution... that means there'd be fixed differences.
Anyway, the unknown value is a Windows FILETIME structure, which contains the number of 100-nanoseconds since the year 1601. Something like that

Anyway, using GetSystemTimeAsFileTime function in Windows we can create a new one which is only slightly bigger (2 months

) than the current ones in the file.
The subentries types are the following btw:
SubAssetTypes.Add('TEX'#0);
SubAssetTypes.Add('MESH');
SubAssetTypes.Add('HLOD');
SubAssetTypes.Add('ANIM');
SubAssetTypes.Add('HIER');
SubAssetTypes.Add('BOX'#0);
SubAssetTypes.Add('PART');
So I think you are only missing 'PART'.
There is now just one unknown number, it is the second dword in the file (258) and I do not know what it does. But perhaps we can just ignore it.
Now I haven't looked at your code yet and if it can extract all the strings needed for StringEntries, but otherwise things should be able to work in theory. Still have to write the tools of course
