If the mouse plugin or the c3 scripting api doesn't provide access to the additional buttons then its simple enough to just hook the mouse events with straight js.
In general you can add event listeners to the document (or canvas if you know a quick way of accessing it) for the mousedown, mouseup and mousemove events. In the events you can access clientX, clientY (which is the xy in canvas coordinants) and button (0 through 4). To make it usable i'd just have them call some c3 functions with those values. and there you can use the CanvasToLayer expressions to get the mouse position in layout coordinants.
As an example here is the js to run at the start of the layout.
document.addEventListener("mousedown", (e) => {e.preventDefault(); runtime.callFunction("mousedown", e.clientX, e.clientY, e.button)};
And here is what the events would look like:
var mx=0
var my=0
function mousedown(x,y,button)
-- set mx to CanvasToLayerX(x,y,0)
-- set my to CanvasToLayerY(x,y,0)
-- do whatever
Do the same thing for mouseup and mousemove and that covers about everything. The only thing missing is a condition for "is mouse down". For that you'll have to just update some variables as the buttons are pressed and relased.
In the js you see it call a function called preventDefault. That should stop those additional buttons from navigating away from the page in theory. It's what c3 already does to keep you from right clicking on a canvas to get a context menu.