Renoise (and its API) simply returns the parameter names and their values contributed by the VSTi. I mean, this depends on the VSTi, not Renoise. In other words, the VST3 and the VST2 equivalent are not the same. Probably, when creating the VST3, it was not created completely the same as the VST2.
If you want to quickly experiment with the parameters of any VST / VSTi you can use the demo version of the MUC tool.
If this topic is very important to you, I suggest that you contact the VST3 creator directly.
…
A minor point. In your loop, you don’t need to define the “local” inside the loop. You can put it like this:
local parameters = {}
for p = 1, table.getn(device.parameters) do
parameters[p] = device:parameter(p).name
end
A local has a performance advantage if you can place it outside the loop. Inside the loop you are creating a local each time the loop makes a pass. If the loop has 20 passes, you have created 20 locals. Using a local within the loop would be good if the local is used many times within the same pass.