Насколько я вижу, ваш заказ неверен: вы должны начать с правила, включающего большинство переменных, и закончить правилом с наименьшим количеством.
RewriteRule ^([a-z]{2}/){0,1}showCategory/([0-9]*)/[a-z\-_0-9\+]*/(.*)/mp/(.*)(/{0,1})$ /main.php?id=$2&il[lang]=$1&page=$3&$4 [L]
RewriteRule ^([a-z]{2}/){0,1}showCategory/([0-9]*)/[a-z\-_0-9\+]*/([0-9]*)(/{0,1})$ /main.php?id=$2&il[lang]=$1&page=$3 [L]
#----------------------------
#Not sure this one is correct, if it is, it should be here i guess
#----------------------------
RewriteRule ^([a-z]{2}/){0,1}showCategory/([0-9]*)/[a-z\-_0-9\+]*/mp/(.*)(/{0,1})$ /main.php?id=$2&il[lang]=$1&$3 [L]
RewriteRule ^([a-z]{2}/){0,1}showCategory/([0-9]*)(/{0,1})/[a-z\-_0-9\+]*$ /main.php?id=$2&il[lang]=$1 [L]
RewriteRule ^([a-z]{2}/){0,1}showCategory$ /main.php?id=0&il[lang]=$1 [L]