anchor.diff:              #merkle_params{p1e = P1ETotal, num_trees = NumTrees,
                              ni_item_count = OtherItemsCount} = Params,
               MyItemCount = lists:max([0 | [merkle_tree:get_item_count(Node) || Node <- MySyncStruct]]),
  -            ?MERKLE_DEBUG("merkle (I) - Inner/Leaf/Items: ~p, EmptyLeaves: ~B",
  -                    [merkle_tree:size_detail(MySyncStruct),
  -                     length([ok || L <- merkle_tree:get_leaves(MySyncStruct),
  -                                   merkle_tree:get_item_count(L) =:= 0])]),
  +            ?MERKLE_DEBUG("merkle (I) - CurrentNodes: ~B~n"
  +                          "Inner/Leaf/Items: ~p, EmptyLeaves: ~B, Items/Leaf: ~g",
  +                          [length(MySyncStruct), merkle_tree:size_detail(MySyncStruct),
  +                           length([ok || L <- merkle_tree:get_leaves(MySyncStruct),
  +                                         merkle_tree:get_item_count(L) =:= 0]),
  +                           lists:sum([merkle_tree:get_item_count(M) || M <- MySyncStruct]) /
  +                               lists:sum([merkle_tree:get_leaf_count(M) || M <- MySyncStruct])]),
               P1ETotal2 = calc_n_subparts_p1e(2, P1ETotal),
               P1ETotal3 = calc_n_subparts_p1e(NumTrees, P1ETotal2),
  -            ?MERKLE_DEBUG("merkle (I) - CurrentNodes: ~B", [length(MySyncStruct)]),
   
               {P1E_I, _P1E_L, NextSigSizeI, NextSigSizeL} =
                   merkle_next_signature_sizes(Params, P1ETotal3, MyItemCount,
  
positive.code:                 rr_recon_stats:set(
                    [{tree_size, merkle_tree:size_detail(SyncStruct)}], Stats),
              Stats2 = rr_recon_stats:inc([{build_time, BuildTime1 + BuildTime2}], Stats1),
              ?MERKLE_DEBUG("merkle (NI) - Inner/Leaf/Items: ~p, EmptyLeaves: ~B",
                      [merkle_tree:size_detail(SyncStruct),
                       length([ok || L <- merkle_tree:get_leaves(SyncStruct),
                                     merkle_tree:get_item_count(L) =:= 0])]),
              
              State#rr_recon_state{struct = SyncStruct,
                                   stats = Stats2, params = MySyncParams,
  
negative.code:            P1EOneLeaf = calc_n_subparts_p1e(
                            length(MerkleSyncNewSend) + length(MerkleSyncNewRcv),
                            P1EAllLeaves),
             ?MERKLE_DEBUG("merkle (I) - LeafSync~n~p (send), ~p (receive)\tP1EAllLeaves: ~g\t"
                           "P1EOneLeaf: ~g\tItemsToSend: ~B (~g per leaf)",
                     [length(MerkleSyncNewSend), length(MerkleSyncNewRcv),
                      P1EAllLeaves, P1EOneLeaf,
                      lists:sum([MyItemCount || {_, _, MyItemCount} <- MerkleSyncNewSend]),
                      ?IIF(MerkleSyncNewSend =/=[],
                           lists:sum([MyItemCount || {_, _, MyItemCount} <- MerkleSyncNewSend]) /
                               length(MerkleSyncNewSend), 0.0)]),
             if MerkleSyncNewSend =/= [] ->
                    {Hashes, NStats2} =
                        merkle_resolve_leaves_send(MerkleSyncNewSend, NStats,
  