Dan, when you inspect entsel by itself, you should get:
(<Entity name: 7eb06630> (1214.74 383.699 0.0))
The car is the Entity name and the cadr or cdr is the coordinates of pick point of the selection. This point is useless for your purposes.
What you want to get is the car of that entsel list, which still does nothing for you except give you readable information. When you collect the car of entsel, get the entity list -> entget. So, you need:
(setq varname (car (entsel "\Pick something: ")))
and
(setq elist (entget varname)).
Really, you should use something better than varname, like ename, since what you're collecting is and Entity NAME, which you'll need in order to update your object (entity).
Your mapcar is still not quite correct. Let's not work on that yet, but for extra credit, read the help file on mapcar and see if you can find why it'll fail as it's written. Oh, and the first line:
(defun c:mto (shade)
Shade will do nothing for you at this time and if shade were to become a variable you need to put (/ shade) like that. You'll get into (shade)'s later. They can be confusing to discuss when you don't need them. Leave it empty () at this point or put (/ all variable names) like that, as you create variable names.
As far as the hand holding goes, I believe we've all been waiting for this day. I'm sure I'm not the only one that needed some hand holding when I started learning this stuff. However, if I wasn't working out little pieces at a time as I went, I'd have never learned anything.