At 1mbps you are at the very top end of (normal) CAN data bit rate. (CAN FD and Flexray go faster, but we are talking std CAN 2.0b here)
This means that timing is everything, and hence bus impedance IS important!
At say just 100kbaud, then sure, CAN will probably work over just about anything, you could probably get it to work over some wire coat hangers twisted together, but at 1mbps, er, nope, you will need to have a robust bus.
The topology of your bus also matters, with the distribution and length of each spur being critical to avoid bit reflections resulting in bit errors. And of course, the higher the effective capacitance of the bus, the slower it transistions, creating rounded corners to the bits. Again, at 100kbaud, probably un-important, at 1Mbaud, VERY important.
You may also need to check the SJW (Synchronous Jump Width) clock correction settings for your nodes to ensure that small timing drifts in the nodes does not result in bit errors.
Do you need to run at 1Mbaud? Unless you require a high data rate (CAN 2.0b is never that high, as the payload per message is just 8 bytes of course) then slowing things down will give you a significant improvement in robustness...