Not quite. The benefit of using entmake is that if the layer does not exist it will create it without your help.
Try this:
(defun c:test (/ M-Text pt str)
(defun M-Text (pt val)
(entmakex (list (cons 0 "MTEXT")
(cons 100 "AcDbEntity")
(cons 100 "AcDbMText")
(cons 10 pt)
(cons 7 "ROMANS")
(cons 8 "Layer_Mtext")
(cons 1 val))
); end of entmakex
(if (setq pt (getpoint "\nSpecify Point: "))
(progn
(setq str (getstring t "\nSpecify Text: "))
(M-Text pt (strcat "{\\L" str "}"))))
(princ)
)