Anyone can help me understand what is the difference between unicast address-family and multicast address-family ?
Multicast-address families are used for exchange of rpf information. Fo example...you want to advertise a specific route into bgp to be used by all routers that receive it for their multicast rpf check. This prefix would take precidence over what the router locally has in their unicast routing table for rpf checks.
Unicast address-family is the exchange of your normal unicast routing information.
This is the point behind diverse address-family commands. Defining a neighbor under a particular address family means that we want to exchange routes from the particular address family with that neighbor.