I understand what the merkle root is for. And I understand that blocks don't store the merkle tree.
Question 1) Is there any place that the complete merkle trees get stored? I don't mean the merkle root hashes since I know they are in the block headers.
Question 2) Let's say a full node starts proving to a light node that a specific transaction is in Block J. How does the full node send the merkle branch to the light node? Does it loop through the transactions again to get the hashes and then sends the interior node hashes of transactions, or do full nodes already have the complete merkle tree (whole tree and each internal hash) stored somewhere?