You are looking at a solicited node multicast address. You are trying to convert directly from the IPv6 unicast address of a node to an ethernet MAC address, but you are missing a step in between. To get the multicast MAC address you first convert the node's unicast IPv6 address to the solicited node multicast IPv6 address as described in section 2.7.1 of RFC2373. Then you get the multicast MAC address that corresponds to that IPv6 multicast address as described in section 7 of RFC2464.
An example: Let's start with IPv6 address 2001:db8::d3f5:31f8:670d
. The corresponding solicited node IPv6 multicast address is ff02:0:0:0:0:1:fff8:670d
. Then you apply the algorithm to get the multicast MAC address of 33:33:ff:f8:67:0d
.
In applications you shouldn't need to worry about neighbour discovery though. That is the operating system's job. When using multicast in an application you should just bind/subscribe to the IPv6 multicast address and the operating system will deliver all packets destined for that multicast address to your application. If you are doing multicast over different LANs this will involve other protocols like MLDv2 (Multicast Listener Discovery version 2) between the host and the multicast router and multicast routing protocols like PIM-SM (Protocol Independent Multicast - Sparse Mode) between the multicast routers.