Yes, using dozens of lights is not manageable currently, you should stick with less as there are some hardware limits, as you could see (the number of uniform buffers we can pass to a shader is limited and each light consumes one).
What you can try to do is determining the lights that are affecting the most a mesh and use the light.includedOnlyMeshes array to only have 4/5 lights affecting a mesh at any time.
There are technics to handle a lot of lights, but it’s a whole new world (Managing many lights in real time with clustered shading - YouTube).