Didnt you want to use the copy from feature of the MM01? If the user wants to create a material by copying an existing material, then they have to go to the back end to create it and the above approach is only for creating new materials from the scratch right?
The above is a very good approach and I am glad I came across it. Thanks Ian.