ok

maybe i can shed some light on things.
The entity.setMaterialName no longer need the _adv or _deferred tags and Gen2 does not use or need these. Pass your material name as it is called

To set a submaterial, then use the "entity.setSubMaterialName(id, subID, materialname);"
In your examples case; call "entity.setMaterialName(obj, "Proto_Red");" as the material is called "Proto_Red".
Q) Have you added the *.material and *.skymat to the resources. Go to the asset manager > Navigate to the directory > Either:
* Click on the folder and click yes to add the new materials.
or
* Right click on the Explorer folder > Resource Manager > Add to resources.
It will need to be added in order to load at all

Also, there is no need to change the material_name at all unless you are renaming the actual file also. e.g. file is called "my_material.skymat" so the material inside the file should be called "my_material".
Further to it all, it is awkward at the moment to visualise a *.skyMat file in the asset manager as we see the .material and load and display the *skyMat. So it is best to have a simple material representation of the *.skyMat in order to see the material in the asset manager. This is something to be done and is quite important

Hope this sheds some light and if it doesnt help, then im sure there are more things to try
