The serious difference between 274 and 338 is the length, 338 is 36 bytes long, 274 is 32 bytes long - the missing 4 bytes are the vertice colours which are not in format 274 - but it's the length that'll cause all the problems. When I made my .X import function, I stepped through the data depending on the specified data chunk length, and had an if condition, if the format was 274, set this data, else set it this way. Note that both headers are layed out identically, so it's just the chunks that need attention.
338: (Data chunk pos)
Vert X# (0)
Vert Y# (4)
Vert Z# (8)
Normal X# (12)
Normal Y# (16)
Normal Z# (20)
Vert Colour (24 Dword)
UV X# (28)
UV Y# (32)
Next data chunk (36) - so 36 bytes long
274: (Data chunk pos)
Vert X# (0)
Vert Y# (4)
Vert Z# (8)
Normal X# (12)
Normal Y# (16)
Normal Z# (20)
UV X# (24)
UV Y# (28)
Next data chunk (32) - so 32 bytes long
HTH.
Van-B
My cats breath smells of cat food.