I have given you the answer to your query on my post.
(setq lay (getvar 'clayer));;
(lay "Point_Number" 2);;
Why you may ask?...
("0" "Point_Number" 2);;;
A simple modification on your code will "fix" the problem...
its either this:
(setq layr (getvar 'clayer))....?
or
(defun LayerM` (name col)....
Your code defines lay as a layer maker when loaded. When you run the routine lay becomes the name of the current layer and not the layer maker sub you define when loaded. got it?
I pointed out the problem with your code so that way you will learn to debug.
How else will you will learn if i've thrown in another code for you to use. [or revising it for you]