Working on FETools::extrapolate in parallel

The FETools::extrapolate function does not work in parallel, because there can be patches with childs of childs ... which are artificial, but interpolation on a patch needs dof values of this cell. The idea is, to store the dof values needed to a list, send the data around to all processes and do the interpolation patch-wise.
All functionality is implemented in a struct CellDataHelpers, so the code is a bit more readable, hopefully, but this is work in progress, maybe some parts, for example sending data around, can be done more efficient and more elegant. If someone has an idea, great!!
Are you broadcasting a separate MPI message for every dof of every cell to every processor in the computation? Why is that? This looks very inefficient to me.