Mesh Optimization / TTL, Relay Nodes, Difficult Floorplan

I'm looking for some feedback. We are running a pilot with 38 nodes in a Bluetooth Mesh. The building is a roughly square layout with 4 main corridors following the outside of the square. The center of the square is exterior to the building. The gateway (denoted by "G") is in the bottom left corner. The sensor locations are shown by ID. I've added a rough rule for scale -- the total footprint is roughly 40m x 45m. We get a range of ~10m per node in normal indoor conditions. We are using the nRF SDK 17.0.2 and nRF5 SDK for mesh. We have not yet made the switch to Zephyr.

As you can see from the layout, some nodes (like those in the corridor at the top of the drawing, C/F/12/13) will require relaying multiple times.

Questions:

1/ Because of the physical layout, we are struggling a bit with which nodes should be relays. Obviously within close groups like d/e/10/21 only one might need to be a relay. However, for nodes separated by greater distance like 6/7/8 or 15/18/1b, presumably all would need to be relays? What rule of thumb would you use to determine which should be nodes and which should not?

2/ I understand that there is no formal message routing. Clearly there are some nodes we can set with TTL=1 or TTL=2, but it is unclear to me how to balance a high degree of certainty that a message will arrive with the need to optimize the network. Nodes that are far from the gateway, like F/12/13 could use as few as 7 hops, or as many as 20 depending on path and number of relays. My current thought is to have 3 or 4 groups, each with different TTL based on approximate/guessed number of hops, but I'm not sure that's the best way to go. This comes down to the same question as above: what rule of thumb can we use to optimize TTL? 

3/ One of the greatest advantages of Bluetooth Mesh appeared to be the lack of configuration needed by an end user once a device is provisioned. However, optimizing TTL and relays is clearly site dependent.
  -- Has anyone been able to automate this optimization process so minimal manual configuration is needed by the end user?
  -- Are there any available resources to help with automating this type of optimization?

All suggestions are most welcome.

Related