hello,
i havent seen a document that show how to implement E-tree (rooted p2mp) over MPLS.
the following described what i've managed to achieve. A Diagram:

and here are the configlets...
PE3 (same on PE4)
l2vpn
bridge group BANK
bridge-domain BANK-Marketing
interface GigabitEthernet101/0/0/1 (Spoke3)
split-horizon group
neighbor 1.1.1.1 pw-id 1 (PE1)
neighbor 2.2.2.2 pw-id 2 (PE2)
PE5
l2vpn
bridge group BANK
bridge-domain BANK-Marketing
interface GigabitEthernet101/0/0/1 (Spoke5)
split-horizon group
interface GigabitEthernet101/0/0/2 (Spoke6)
split-horizon group
neighbor 1.1.1.1 pw-id 1 (PE1)
neighbor 2.2.2.2 pw-id 2 (PE2)
PE2
l2vpn
bridge group BANK
bridge-domain BANK-Marketing
interface GigabitEthernet101/0/0/2 (Hub3)
neighbor 1.1.1.1 pw-id 2 (PE1)
interface GigabitEthernet101/0/0/1 (Spoke2)
split-horizon group
neighbor 3.3.3.3 pw-id 3 (PE3)
split-horizon group
neighbor 4.4.4.4 pw-id 4 (PE4)
split-horizon group
neighbor 5.5.5.5 pw-id 5 (PE5)
split-horizon group
you can see that the rule is simple. spokes are configured with SHG and Hubs do not.
and here i encountered a problem. according to the config of PE2, Spoke1 (coming from PE1 or 1.1.1.1) can reach all other spokes.
i can use ACLs to match MAC addresses but it is not a scalable solution... so.... how can i configure PE1 and PE2, or any PE that connect spokes and hubs, without breaking the E-Tree?