For duplicated files with py2:
Bitte melden Sie sich an, um diesen Link zu sehen.
Alternative version with py3:
Bitte melden Sie sich an, um diesen Link zu sehen.
They are just based on pack/Index load order.
As for the loaded models/textures: you'd need to take the granny2 preprocessor source, and process any .gr2 in the client. This way, you know all the textures used by the models.
To know which gr2 models to process, check both root/.msm, and areadata.txt (property id -> property/XXX.prY) of any map inside atlasinfo.txt.
To know how to process a msm, use my EterGroupParser in py3: Bitte melden Sie sich an, um diesen Link zu sehen.
I would just remove any duplicated files if I were you, and ignore the dead ones (which I think are very few).