If they are points, wouldn't it be easier to use something like one of the following?
(defun mta (lst)
(+ (* (car lst) (cadr lst))
(if (numberp (caddr lst))
(caddr lst)
0.
)
)
)
OR
(defun mta (lst)
(+ (* (car lst) (cadr lst))
(cond ((caddr lst))
(0.)
)
)
)
That way you could also apply it to a list of point lists with mapcar.