I'm a software developer and just got a free book about IPv6 at the Techdays, which I'm reading for fun. They gave it away because it's a bit of an old book (W2008), so maybe things are different for other/newer OSes, but I don't understand the necessity for Neighbor Discovery to get the MAC address.
According to the book, every node automatically gets a Link-local IP-address, which is constructed from the MAC-address by inserting FF-FE
between the 3rd and 4th bytes and flipping the U/L bit, so that the Link-local IP for a node with a MAC address of 00-AA-00-3F-2A-1C
becomes FE80::2AA:FF:FE:3F:2A1C
.
To determine the link layer MAC address, a Neighbor Solicitation message is send to the link-local IP address, which replies with a message containing its MAC address... But the sender already knows that, because the MAC is encoded in the link-local IP address. So it sounds like mailing a postcard to somebody asking for their address.