There are a few things you can do. First if you're final output is going to be in mentalray and you're planning on using mentalray shaders then do not use maya shaders and then switch at the end. The results will be different, the base mentalray shaders aren't an exact or literal representation of the base maya shaders. So if you're final output is going to use mental ray shaders, then start with mentalray shaders.
Now here's the hack to see the shaders in your viewport. Use whatever mentalray shader you want to and assign it to your geometry. Create a maya shader that is similar to your mentalray shader (if it's mib_illum lambert then use a maya lambert, if it's mib_illum_phong then use a maya phong....etc.) and connect it's out color to the attribute "surface material" on the mentalray shaders shading group.
Now any textures that you plug into the mental ray shader, you should also plug them into the maya shader.
This will give you a shader that will show up in the viewport and still render the expected result in mentalray. The maya shader handles the ogl display (and hardware rendering if desired) but when rendered in mentalray, only the mentalray shader will be evaluated. Try exporting an mi file for rendering in standalone and you'll also notice that whatever maya shader it was that you used in the "surface material" attribute of the mentalray shader doesn't even export with the shading network.
There is another fix going around right now that involves editing/creating some AEtemplates and modifiying mi files, but unless Im doing it wrong it's only going to give you default lambertian shading in your viewport and no texturing. You're basically trading the green color for the default lambert that doesnt' display textures. I got this from another forum on the net, cant remember where so I don't know who to credit and I can't take credit for this myself.....
Add this to the material AEtemplate:
editorTemplate -beginLayout "Hardware Texturing"
-collapse true;
editorTemplate -addControl "hardwareColor";
editorTemplate -addSeparator;
AEhardwareTextureTemplate $nodeName
("hardwareColor");
editorTemplate -endLayout;
Add this to the MR shaders mi file:
On last parameter add a comma ","
then add:
color "hardwareColor" #: default 0.5 0.5 0.5
Then connect your material in the miMaterial AND the
SGsurfaceShader.
I believe this assumes that whatever shader's mi declaration you're editing, was compiled with an attribute called "hardwareColor". Can't remember for certain. Give both methods a shot.