Here is a picture of what the code does so far.
Hopefully that answers any remaining questions in what I tried to accomplish.
The specular nodes are just diffuse nodes with faked names so far.
The last step, to really make them specular nodes still remains.
Thank's to your sample code I feel confident about making it work