There are 2^28 possible IP multicast addresses, but only 2^23 possible Ethernet (MAC) multicast addresses (http://technet.microsoft.com/en-us/library/cc957928.aspx), which is why e.g. 224.1.1.1 gets mapped to the same MAC address as 224.129.1.1.
This can be inefficient as hosts interested in only the former address will end up receiving packets for the latter as well, i.e. filtering is not done by the switch/router, but in the host itself.
Now IGMP works using IP addresses, and IGMP snooping switches descend to layer 3 anyway. Doesn't this mean that IGMP snooping switches don't suffer from this MAC multicast address ambiguity problem and can route in a way that hosts only interested in 224.1.1.1 don't get packets for 224.129.1.1?
The internet draft IGMPv3 and IGMP Snooping switches believes the following to be most common in IGMP snooping switches:
In other words: The IP-to-MAC multicast address ambiguity still applies to most common IGMP snooping switches.
This makes sense: Routing of normal multicast traffic, i.e. all those multicast packets that do not have the 'Router Alert' IP flag set (which excludes IGMP reports, that do need to be snooped upon and inspected at layer 3) can be done on layer 2, which is more efficient.
However, these CISCO docs indicate configurability: