I would like to use a difference boolean modifier on this mesh so the small branches on top "sculpt" detail into it. But the boolean operation will not work. There seems to me a problem with the bottom mesh, because I can use the branches to do a boolean difference with other primitives without any issue. I've tried pretty much everything. The bottom mesh is manifold, all normals are correct, rotation and scale were applied, no loose vertices or edges, doubles were removed, etc... I even tried to triangulate it, but nothing seems to make it work properly. As soon as I try to apply the boolean operation, I get this weird result where the branches perform a union rather than a difference and their normals get inverted.
Here is the .blend file if anyone is willing to take a look at it. If this happens to be a bug and cannot be resolved, any suggestions as to how I could have made such details into my mesh without boolean?