I have read about and used the MCMT qiskit gate (Multiple Control Multiple Target). But I wonder how they have implemented it, how is a gate (like CCCZ for example) is decopmosed into basic gates and constructed using MCMT? What is the initiution behind it? is there a base paper that describes how to do such thing?