Oh to fix the problem you need to add PSO as well I think
from strncpy(t.shader,"T0;GSO;GTO;B10;D;PTO1.0,0.0,0.0;",256);
to
strncpy(t.shader,"T0;GSO;GTO;B10;D;PTO1.0,0.0,0.0;PSO1.0,0,0;",256);
But I do not know how 1.0 will look though PTO/PSo 1,0,0 will look though. Maybe try reducing it for example in the Monkey scene you have
strncpy(tn.shader[0],"D;T0;B10;GSO;GTO;PSO0.0005,0,0;PTO0,0.0005,0;",256);
PSO/PTO (0.0005,0,0) so play with the values until you get something that is right for you.