Material mat = new Material(spriteMat);
mat.setTexture("ColorMap", tex);
mat.setBoolean("VertexColor", true);
mat.getAdditionalRenderState().setBlendMode(BlendMode.Alpha);
matPages[index] = mat;
This happens before the letter quads are being generated.
Maybe you make a small code example with an example texture that demonstrate the not working things. Then we could see if that fails on our computer with jME 3.0 / jME 3.1. And the gurus might step in and answer your questions.
I was using it on a texture loaded through the assetManager. I thought it would update the cached texture. I had to use it on the texture I loaded the second time.