Hello,
Currently, SetObjectTexture and SetObjectMaterial are not synced on map objects.
With some thought on my side. I would sync it's due because of the full path of the texture should be synced.
With some research, it's would be easy to counter that huge sync. 95% of the time you know which path you want to assign. You just hardcode it in code.
Why not instead, make a config array of string, that reference to all possible textures you want to apply. And you create two new functions EntityAI::SetObjectTextureByIndex and EntityAI::SetObjectMaterialByIndex each one take index of the hiddenSelections at first parameter and an index to this new config array at second parameter.
It's still modding friendly, due to the += operator for array in config.cpp.
And you can easily apply quantization to this second index because you know the max he can hold.
For example if we consider one character is encoded in ASCII, 7 bits to encode a character. With the technic just above. You can have 127 different textures.