IP addresses are assigned to a machine based on its location in the network. If the machine moves, its address changes.
MAC addresses are assigned to a network card and move with the machine. Routing at this layer would require the network to know where every machine is.
The difference is that MACs are plug and play–no configuration required, while IPs require (frequently) manual configuration.
Various MAC addresses are assigned for multicasting or broadcasting, i.e. to address some or all the machines on a LAN. Generally this is invisible but you may see IP multicast (e.g., Norton Ghost) or broadcast (e.g., DHCP) addresses.