There's nothing to fix cause it's not a bug.So possible fix that in future?
Or bigger quality textures will always require to be at top?
The problem you are having are the different resolutions for the same textures from different ContentPacks (=> extensions.dat are overwriting).
The extensions from all ContentPacks are loaded before anything else is happening, and then the textures are loading in the order of the ContentPacks in the menu. That means is going to take the texture from the first ContentPack it finds the texture in. If it finds it in a lower resolution ContentPack but defined by the extensions.dat from a higher resolution ContentPack, it tries to load much larger textures that are not existing in the smaller ContentPack. Likewise, it will result in some cropped and cut out versions of the larger texture pack if that one is in front but the smaller ContentPack defines the extensions.
You really need to do a case-by-case test if the ContentPacks are compatible. This is ONLY an issue though when the resolutions of defined textures that are existing in both ContentPacks are different.