As tmp7704 described, there are 3 different levels of detail (LOD) that the game uses for models. Here is an example, in this case Human male heavy armour (variant a):

You’ll see the designation for each model follows the format:
[Main class]_[Model Type]_[Model Sub-Type][Model Variation]_[LOD]
Where, in this example:
Main class = HM, human male
Model Type = ARM, chest/torso armour (as distinct from boots and gloves)
Model Sub-Type = HVY, heavy
Model Variation = A, variant A (1 of 5 variants in this case, A to E)
LOD = 0/2/3, the level of detail
Each individual model is composed of three separate files:
MSH – Mesh, the actual geometry and UV co-ords, normals, etc.
MMH – Model hierarchy, the allocation of bones and materials, etc.
PHY – Model physics, information on collision, etc.
The way variants work is that they each share a common MSH - i.e. they are just texture variants of the same mesh. This is a cheap way of giving the appearance of lots of different models, especially in conjunction with normal maps which fake geometry. In the case of mod custom armour lower LOD distortion, this is an issue because the game believes that the model is just a texture variant of the particular base game mesh that it shares a filename with. When it finds no existing LOD information, it just substitutes the LOD variants for what it believes is the same base mesh.
For example, in the case of the Mord Sith mod (using the “Mord_Sith_Armour_final” file) there are 3 sets of armour included, 1 for Elf females and 2 for Human females (as well as associated gloves and boots). These are ef_arm_lgtz_0, hf_arm_lgtm_0 and hf_arm_lgtx_0. As far as the game is concerned, the Elf armour is just a texture variant of the female Elf light armour mesh and the Human armours are just texture variants of the female Human light armour mesh. I suspect that when the game can’t find the expected LOD information, it is either trying to pair the vanilla low LOD MMHs with the custom MSH or the custom MMHs with the vanilla low LOD MSHs. I’m not sure which it is, but either way is going to result in distortion. Ultimately it doesn’t matter what the cause is, the way to prevent it is to give the game the LOD information it wants. To do that, you’ll have to make some copies of the existing models and edit them. Because the Mord Sith mod is an Addin, there are some additional steps required to access the source files.
To start with, locate the folder where the mod is installed. I believe this should be My Documents\\BioWare\\Dragon Age\\AddIns\\adriangi_mordsith\\. Go to the \\Contents\\packages\\core\\data\\ folder and locate the file adriangi_mordsith_package.erf. You need to open this either with the toolset or the standalone ErfEditor.exe in the toolset directory. Either way, once it is open, in the menu bar go to Edit->Extract All Resources and in the pop-up window choose a temporary folder somewhere and click OK. You’ll get a message telling you the files have been extracted, after which you can close the file. Go to the directory where you extracted the files. Delete all the DDS, MSH and GDA files – you won’t need them. All you want are the MAOs, MMHs and PHYs. Additionally, you can delete the 3 files for w_dgr_dg06m_0, which is a dagger. That should leave you with 21 files (7 of each type) which are comprised of 3 sets of armour, 2 sets of boots, and 2 sets of gloves.
You have two options. Which one you want to use depends on what your system is like. If you have a pretty good rig and run DA smoothly at max settings then you can go with the quickest method and not worry about the MAOs. If your system is a bit older (primarily your video card in this case) and struggles a bit you will probably want to also edit the MAOs. Either way, the first step is to edit the MMHs and PHYs, as this is required for both.
Make a copy of all the MMH/PHYs so that you have two of each. Change the LOD in the filename of the originals from 0 to 2 and change that in the copies to 3. For example, you should go from having a single file named ef_arm_lgtz_0.mmh to two files named ef_arm_lgtz_2.mmh and ef_arm_lgtz_3.mmh. Once this is done you need to open every single file and edit some values. Again, you can use either the toolset or the standalone GffEditor.exe to do this. For the MMH files, at the top change the MMH_NAME field to reflect the new filename (i.e. change _0 to _2 or _3). Repeat this for the PHYs. At this point you have effectively created the required sets of LOD models the game expects. You can just delete the MAOs, dump the MMHs and PHYs in a folder inside your My Documents\\BioWare\\Dragon Age\\packages\\core\\override\\ folder and load up the game. However, if you have a lower-end machine, you may want to add the following additional step.
Make a copy of all the MAOs so that you have two of each. Add _l2 to the end of the filename for one copy and _l3 to the end of the filename of the other. For example, you should go from having a single file named ef_arm_lgtz.mao to two files named ef_arm_lgtz_l2.mao and ef_arm_lgtz_l3.mao. Open each of these files in a text editor. For the previous example, you should see something like the following:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<MaterialObject Name="EF_ARM_LGTZ">
<Material Name="Character.mat"></Material>
<DefaultSemantic Name="ArmourSkinTint"></DefaultSemantic>
<Texture Name="mml_tDiffuse" ResName="ef_arm_lgtz_0d.dds"></Texture>
<Texture Name="mml_tNormalMap" ResName="ef_arm_lgtz_0n.dds"></Texture>
<Texture Name="mml_tSpecularMask" ResName="ef_arm_lgtz_0s.dds"></Texture>
<Texture Name="mml_tTintMask" ResName="ef_arm_lgtz_0t.dds"></Texture>
<Vector4f Name="mml_vFalloffParams" value="0.71 10.23 1.50 1.50"></Vector4f>
<Float Name="mml_fSpecularReflectionMult" value="1.00"></Float>
</MaterialObject>
In the L2 file, change it to:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<MaterialObject Name="EF_ARM_LGTZ_L2">
<Material Name="Character.mat"></Material>
<DefaultSemantic Name="ArmourSkinTintL2"></DefaultSemantic>
<Texture Name="mml_tDiffuse" ResName="ef_arm_lgtz_0d.dds"></Texture>
<Texture Name="mml_tSpecularMask" ResName="ef_arm_lgtz_0s.dds"></Texture>
<Texture Name="mml_tTintMask" ResName="ef_arm_lgtz_0t.dds"></Texture>
<Vector4f Name="mml_vFalloffParams" value="0.60 8.70 1.50 1.50"></Vector4f>
<Float Name="mml_fSpecularReflectionMult" value="1.00"></Float>
</MaterialObject>
And in the L3 file change it to:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<MaterialObject Name="EF_ARM_LGTZ_L3">
<Material Name="Character.mat"></Material>
<DefaultSemantic Name="ArmourSkinTintL3"></DefaultSemantic>
<Texture Name="mml_tDiffuse" ResName="ef_arm_lgtz_0d.dds"></Texture>
<Texture Name="mml_tSpecularMask" ResName="ef_arm_lgtz_0s.dds"></Texture>
<Texture Name="mml_tTintMask" ResName="ef_arm_lgtz_0t.dds"></Texture>
<Vector4f Name="mml_vFalloffParams" value="0.53 7.67 1.50 1.50"></Vector4f>
<Float Name="mml_fSpecularReflectionMult" value="1.00"></Float>
</MaterialObject>
There are 4 changes. The MaterialObject name was changed to reflect the appropriate filename. The DefaultSemantic (which dictates how the object is rendered) was changed to the appropriate L2/L3 version. The normal map was completely removed. And finally, the falloff parameters were changed to match those from the vanilla game MAOs. Don’t worry too much about the mechanics behind all that, the important point is that we are reducing the load on the video card. Now repeat the same steps for all the other MAOs.
Once that is done, it’s time to edit all the MMHs again. With one open, right click and choose Expand All. Scroll right down to the bottom. In the last node you should see a list of bones. Scroll up just above that and look for a field labelled MMH_MATERIAL_OBJECT. For example, in ef_arm_lgtz_2/3 it should be ef_arm_lgtz. Change this to either ef_arm_lgtz_l2 or ef_arm_lgtz_l3, as appropriate. Repeat for all the MMHs. Now you can move all the MAOs/MMHs/PHYs to the Override folder, as described before.
As and additional point, if you wanted to get
really fancy, you could also downscale all the textures. I won’t go into depth with that, but basically textures for the two lower LODs are ¼ the size of the preceding LOD. So for an LOD0 texture of 1024x1024, the LOD2 texture would be 512x512, and the LOD3 texture would be 256x256. Scale them down, save them with appropriate filenames (e.g. ef_arm_lgtz_0dl2.dds and ef_arm_lgtz_0dl3.dds), edit the MAOs to reflect the new filenames, and dump them in the Override folder with everything else. Each LOD would require diffuse, specular and tint maps. Normal maps are only used for LOD0.
Oh and one final addendum. Every time you save a GFF file you'll get a backup copy of it named *.BAK. You can delete those once you are done.