TLDR: There seem to be some issue with the material slot names (which seem to actually be the material names)
Here's this mesh from VALORANT (I realize VALORANT is not supported as is but I don't think this is a VALORANT specific issue, this is also not a new issue)
On this mesh the displayed entries are broken, it exports the same way but null is obviously replaced with dummy material for glTF (as I use glTF since it stores the normals).
The same mesh exported by FModel gives this (I'm not aware of any modifications in FModel (or in CUE4Parse lib) that's VALORANT specific other than the 8 byte skip mentioned at the bottom of the post):
Meanwhile CUE4Parse displays this data:
"MaterialSlotName": "TP_Deadeye_S0_MI"
"MaterialSlotName": "TP_Killjoy_S0_Glass"
"MaterialSlotName": "TP_Deadeye_S0_Hair_MI"
"MaterialSlotName": "Eye_Shading_Mat"
"MaterialSlotName": "FP_Deadeye_S0_Sniper_MI"
"MaterialSlotName": "chain_sim_MI"
"MaterialSlotName": "TP_Deadeye_Chain_Cloth_S0_MI"
A quick look into UEViewer revealed that "Ar << M.MaterialSlotName;" in UnMesh4.cpp line 582 is getting the same data as the list above.
and
etc...
So material slots have the material name displayed/exported instead (in both UModel and Fmodel), I suppose this is because it's easier to identify what material belongs to a slot as slot names can be irrelevant/make no sense and have no real link to the material once it's exported?
So what could be the cause of the issue on the first picture? I mean even if it displays the material name and not the slot name it should match the one exported from FModel (second picture)
So in action: since something went wrong somewhere later the 'CS_Deadeye_S0_Glass_clear_MI', 'CS_Deadeye_S0_Hair_MI' and 'TP_Core_Eye_MI' materials are replaced by CS_Deadeye_S0_MI
Samples: https://drive.google.com/file/d/1bRAP5JAMeQ5GNzoeGVuOO4bNUdMw2VDx/view?usp=sharing
Please note that VALORANT has 8 unknown bytes between Guid and ThumbnailTableOffset, the game is on 4.25.I hope I explained it well enough :d