since the question was tagged with IPv6 I'll answer on that, for IPv6 is very different to IPv4.
To begin with, there is no such thing as ARPv6, and ARP itself cannot be used, because it was made for 4-byte network layer addresses (i.e. IPv4).
This part is taken up by the Neighbor Discovery Protocol (NDP), which is sent over ICMPv6. (Thus, you must not ignore ICMPv6 and filter it away as is custom with legacy IP.) The NDP contains two message types that are of interest here: Neighbor Solicitation and Neighbor Advertisement. A node that wants to learn a link-layer address (note that while ARP is for IPv4->MAC, NDP can map IPv6 addresses to link-layer addresses of any type) sends a Neighbor Solicitation to the link-local solicited-node multicast address - there is no broadcast for IPv6 any more.
For example, if the address is 2001:db8::0011:2233:4455:6677, then this multicast address is ff02::155:6677, and the according ethernet multicast address is 33:33:01:55:66:77. All nodes with an address ending on *55:6677 will listen to that - this is most likely only the target system itself. Alongside the Neighbor Solicitation contains one of its unicast IPv6 addresses and it MAC address.
On receipt, the target node answers with its neighbor advertisement, wich is sent to the unicast address of the enquiring node. Thus it learns the MAC-address of the target node.
And yes, NDP-spoofing works much like ARP-spoofing.