I'm trying to find the code that reads polymodel files and builds the struct that represents them. I think I see it in read_model_file() in polyobj.cpp but it's confusing: the first thing this function does is read a "model_ID" int and assert that it must equal 0x4f505350 (or "OPSP"). So any block that describes a polymodel and gets read by read_model_file() must start with that value. So I looked in any ham, hog or pig file I could find in both Descent 1 and 2 with a hex editor, and didn't find "OPSP" anywhere (or "PSPO" since I know there are endian issues). Same for any of the other header IDs like "OHDR". As far as I can tell there is no model data anywhere in the Descent files that could be read by this particular function. So where are the files and/or which function is actually the one that reads model data?