coord_counter_y müsstest du vor der inneren schleife immer zurücksetzen. ist aber obsoleter rat da die ganze funktion so langfristig nicht funktionieren kann.

erstmal zu ent array: das ist keine funktion (nichts mit ent_array oder so) sondern kurz für entity-array. cube[] ist ein entity array, genauer ein array von pointern vom typ entity. was ein array ist solltest du auf jeden fall wissen wenn du derartige dinge programmieren möchtest, arrays sind eine recht fundamentale datenstruktur.

ein problem in deinem code ist das du irgendwie versuchst alle entities, die einen würfel bilden, in einem einzigen array-element zu speichern, denn du setzt cube[i] in deiner schleife gleich mehrmals auf den rückgabewert eines ent_create aufrufs. im endeffekt zeigt cube[i] dadurch am ende der schleife nur auf die zuletzt erzeugte seite des i-ten würfels. nebenbei bewirkt das dass auch nur diese seite das DECAL flag gesetzt hat; das sich nicht alle anderen seiten nach der kamera ausrichten kommt daher dass du ihre ausrichtung direkt nach dem erzeugen manuell setzt, was wenn ich mich richtig erinnere den gleichen effekt wie das flag hat. wenn du später durch dein array iterierst, um beispielsweise bei allen blöcken die farbe zu ändern oder so, wirst du feststellen dass änderungen sich nur auf eine seite auswirken.

außerdem ist es relativ ineffizient die würfel in einem EINdimensionalen array zu speichern, besser wäre es, ein ZWEIdimensionales zu verwenden, dadurch kannst du später gezielt auf blöcke in bestimmten zeilen und spalten deiner blockwelt zugreifen. das spart dir auch 4 deiner 5 variablen im code. lies dir mal die abschnitte zu arrays im handbuch durch, die erklären das glaub ich ganz gut. später wenn du tatsächlich welten aus deinen blöcken bauen willst wäre sogar ein dreidimensionales array ideal (auch wenn ich nicht mehr weiß ob das in lite-c geht).
am besten wäre es aber sowieso, zwei eigene datenstrukturen zu verwenden, eine um alle seiten eines blockes abzuspeichern und eine weitere um die block-welt zu verwalten. dazu benutzt man structs. das spart in der regel eine menge unnötigen code. auch dazu gibt es einen abschnitt im handbuch.