I have a few observations for you to consider:
-
The Elegoo Mega 25560 R3 operates at 5 V (ELEGOO MEGA 2560 R3 Board with USB Cable Compatible with Arduino IDE for STEM – ELEGOO Official) and the XL-330s also operate at 5 V (XL330-M288-T) so why bother with a 12 V PS which then you’ll have to bring down to 5 V via a Buck converter? You could have use some 5 V Power Banks with USB connectors such as ( https://www.amazon.com/RPMAX-Portable-26800mAh-Ultra-High-Capacity/dp/B089GZJFYD ) and these interface cables ( https://www.amazon.com/Power-Yeworth-Connector-Charging-Adapter/dp/B07Q5PHHFK ) and ( https://www.amazon.com/Pigtail-Female-Connectors-Security-Adapter/dp/B07C7VSRBG ).
-
As the Elegoo Mega 25560 R3 uses 3.3 V for its UART Pins, you can interface its UART pins to the newer Dynamixel Shield MKR directly (DYNAMIXEL Shield MKR) using the approach described here for an ESP32 (ESP32 + DXL Shield MKR Mashup in ARDUINO - #6 by roboteer) but that can be adapted to your Elegoo Mega 25560 R3, or you can just use an ESP32 instead (with dual-core programming) - why stay with “ancient technology” like the AT-Mega?. Why stay with Dynamixel Shield with its “crazy” Dynamixel-Upload switching operation?
-
As you have 20 XL-330s, you’ll need to avoid hooking them up on a 1-to-1 LONG DXL Daisy Chain (i.e. your last XL-330 will be “far away” physically and communication-wise from your DXL Shield MKR ports). You’ll need to use these 3XP-JST Expansion boards to form “parallel” groups of FOUR XL-330 each, so that your DXL packets can reach them with “shorter” physical distances from your DXL Shield MKR. How big will your robot be to need 20 XL-330s?