The branches of that giant tree were spreading out over the pond.

Literal

That giant-tree [gen-の] branches [subj-が] pond [on-に] were-covering-over [polite-ていた].

巨木 'giant tree' is the compact sinitic compound 巨 'giant' + 木 'tree.' 覆いかぶさる is a compound verb: 覆う 'to cover' + かぶさる 'to be placed over / overhang,' together meaning 'to hang over / loom over / drape over.' ~ていた marks the ongoing past state of the branches overhanging. に on 池 marks the location the branches are covering, not a destination of motion.