Arduino Mega driving multiple relays (40+)

I am working on a home automation project to control all lighting inside my house, currently running into some trouble of controlling a large number of relays using single arduino mega unit.

I am intending to use 3 x 16CH 5v relay boards as interposing relays which drives relays that turns on/off led downlights.

https://www.elecfreaks.com/estore/16-channel-5v-mini-relay-module-bk-rl16-01.html

However, looking at the specs of the relay board, it is noticed that the driving is current 20mA (per channel), which could easily exceed 200mA limit from arduino pins with one mega unit.

Is it possible to drive such amount of relays with one mega? if not, why does Arduino mega designed with so many digital i/o pins? coz when all pins are used, each pin can only draw less than 5mA, which is totally impractical.

Several boards I've seen have got the specs wrong.

The more common blue sugarcube relay modules also sometimes state 20mA, while in reality it's 2mA.

If you already have the module, then look at the resistor value next to each opto coupler.
From that you can calculate opto LED current.

Or measure pin current.

Or post a clear picture of the opto coupler part of that relay board.
Leo..

I can offer only professional board up to 12 relays. Etc., you can use this board – Multifunctional POWER SHIELD 6+6 T800 more info. http://v-vTech.com

You can increase the current capability of microcontrollers where the supply pin current is an issue
by arranging half the outputs to be active low and half to be active high. This shares the
return current between gnd and Vcc pins.

If you know that most relays will be in a particular state most of the time, ensure that
that is the undriven state. (Of course this isn't always possible, if the power-down state
has to be different...)