Any router can allocate or impose a label depending on their role in the network. Talking in the context of MPLS VPN, bottom label is imposed by remote PE (mostly in cases of MPLS VPN where PE allocates VPN Label) and the top label is generally received by P router (IGP or TE label) unless another PE is also acting as a P label
Hope this helps.
Regards
Vinit
Thanks
--Vinit